//package com.goktech.utils;
//
//import com.baomidou.mybatisplus.annotation.DbType;
//import com.baomidou.mybatisplus.annotation.FieldFill;
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
//import com.baomidou.mybatisplus.generator.config.GlobalConfig;
//import com.baomidou.mybatisplus.generator.config.PackageConfig;
//import com.baomidou.mybatisplus.generator.config.StrategyConfig;
//import com.baomidou.mybatisplus.generator.config.po.TableFill;
//import com.baomidou.mybatisplus.generator.config.rules.DateType;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//
//import java.util.ArrayList;
//
//// 代码自动生成器
//public class CodeBuild {
//    public static void main(String[] args) {
//        // 需要构建一个 代码自动生成器 对象
//        AutoGenerator autoGenerator = new AutoGenerator();
//
//        // 1、全局配置
//        GlobalConfig globalConfig = new GlobalConfig();
//
//        String projectPath = System.getProperty("user.dir");
//        globalConfig.setOutputDir(projectPath + "/src/main/java");
//        globalConfig.setAuthor("初茶");
//        globalConfig.setOpen(false); // 是否打开资源管理器
//        globalConfig.setFileOverride(false); // 是否覆盖原来生成的文件
//        globalConfig.setServiceName("%sService"); // 去 Service 的 I 前缀
//        globalConfig.setIdType(IdType.AUTO);
//        globalConfig.setDateType(DateType.ONLY_DATE); // 设置时间格式
//        globalConfig.setSwagger2(true);
//
//        autoGenerator.setGlobalConfig(globalConfig);
//
//        // 2.设置数据源
//        DataSourceConfig dsc = new DataSourceConfig();
//
//        dsc.setUrl("jdbc:mysql://localhost:3306/plant-craft?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8");
//        dsc.setUsername("root");
//        dsc.setPassword("root123");
//        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
//        dsc.setDbType(DbType.MYSQL);
//
//        autoGenerator.setDataSource(dsc);
//
//        // 3.包配置
//        PackageConfig pc = new PackageConfig();
//
//        pc.setModuleName("");
//        pc.setParent("com.goktech");
//        pc.setEntity("pojo");
//        pc.setMapper("mapper");
//        pc.setService("service");
//        pc.setController("controller");
//
//        autoGenerator.setPackageInfo(pc);
//
//        // 4.策略配置
//        StrategyConfig strategyConfig = new StrategyConfig();
//
//        strategyConfig.setInclude("tb_swiper"); // 设置要映射的表名
//        strategyConfig.setTablePrefix("tb_");
//        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
//        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
//        strategyConfig.setEntityLombokModel(true); // 是否使用 lombok 开启注解
////        strategyConfig.setLogicDeleteFieldName("deleted");
////        // 乐观锁配置
////        strategyConfig.setVersionFieldName("version");
//        // 自动填充策略配置
//        TableFill createTime = new TableFill("createTime", FieldFill.INSERT);
//        TableFill updateTime = new TableFill("updateTime", FieldFill.INSERT_UPDATE);
//        ArrayList<TableFill> tableFillList = new ArrayList<>();
//        tableFillList.add(createTime);
//        tableFillList.add(updateTime);
//        strategyConfig.setTableFillList(tableFillList);
//        // 开启 restful 风格
//        strategyConfig.setRestControllerStyle(true);
//        strategyConfig.setControllerMappingHyphenStyle(true); // localhost:8080/hello_id_2
//
//        autoGenerator.setStrategy(strategyConfig);
//
//        autoGenerator.execute();
//    }
//}
